package exception;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后，java提供了一个新的特性：自动关闭。指在IO操作中可以更简洁的使用异常处理机制
 * 完成最后的close操作。
 * try（
 * 定义需要finally中调用close（）方法关闭的对象。
 * ）{
 *     IO操作
 * }catch（xxxException e）{
 *     。。。。。
 * }
 * 上述语法中可以在try的“（）”中定义的并初始化的对象必须实现了java，io。AutoCloseable
 * 否则编译不通过。
 */
public class AutocloseableDemo {
    public static void main(String[] args) {
        try(
                FileOutputStream fos =new FileOutputStream("fos.txt");
        ){
            fos.write(1);
        }catch (IOException e){
            e.printStackTrace();//向控制台输出当前异常的错误信息
        }
        /*
        上述代码是编译器认可的，而不是虚拟机。编译器在编译上述代码后会在编译后的
        class文件中改回成FinallyDemo2案例的代码样子。
         */
    }
}

